Reconciliation - ImportBalance y Validación de Balance Conciliado
Descripción
Este documento describe la lógica utilizada en el proceso de conciliación bancaria para:
- El cálculo del saldo importado (ImportBalance).
- La validación del mensaje "¡El saldo conciliado no cuadra!".
La implementación está basada en los procedimientos almacenados:
aasi_report_reconciliationaasi_reconciliation_balance_not_closed
Cálculo del Saldo Importado (ImportBalance)
Descripción
El Saldo Importado (ImportBalance) representa la suma acumulativa de todos los movimientos importados desde el extracto bancario (o fuente externa), desde la fecha inicial de configuración de conciliación hasta el período actual.

Reglas
Alcance temporal
El cálculo considera todos los movimientos comprendidos:
- Desde la fecha
StartDatede la configuración de conciliación. - Hasta el período actual inclusive.

Exclusión de asientos de ajuste
El cálculo del saldo importado excluye explícitamente los registros de ajuste.
Solo se consideran registros donde:
IsAdjustingEntry = 0
Esto significa que los asientos contables de ajuste no forman parte del cálculo inicial del saldo importado.
Inclusión de movimientos conciliados y no conciliados
El cálculo incluye todos los movimientos importados:
- Conciliados.
- No conciliados.
El estado de conciliación no afecta el cálculo del ImportBalance.
Campo utilizado para el cálculo
El monto considerado corresponde al campo:
ri.Value
Este campo representa el valor monetario del movimiento importado.
Mensaje "¡El saldo conciliado no cuadra!"
Descripción
El mensaje:
¡El saldo conciliado no cuadra!
se muestra en la interfaz cuando el procedimiento almacenado:
aasi_reconciliation_balance_not_closed
retorna el valor:
1
Si retorna:
0
el mensaje no es mostrado.
Flujo general del cálculo
El procedimiento realiza los siguientes pasos:
- Obtiene los movimientos contables y movimientos importados.
- Calcula débitos y créditos.
- Normaliza excedentes contables.
- Compara el balance final.
- Determina si existe diferencia.
Reglas
Alcance temporal
La validación considera movimientos comprendidos:
- Desde
StartDate. - Hasta el período actual inclusive.

Exclusión de ajustes del saldo importado inicial
El saldo importado inicial (BalanceAtReconciliation) excluye movimientos de ajuste.
La condición aplicada es:
IsAdjustingEntry = 0

Inclusión de ajustes en la validación final
En la validación final sí se consideran registros de ajuste.
En esta sección no existe filtro por:
IsAdjustingEntry
Por lo tanto, se incluyen:
- Movimientos normales.
- Asientos de ajuste.

Comportamiento del parámetro @reconciledOnly
El contenido de las tablas:
#ReconciliationImportReconciled#JournalItemReconciled
depende del parámetro:
@reconciledOnly
Cuando @reconciledOnly = 0
Se obtienen movimientos:
- NO conciliados.
- Pendientes de conciliación.
La condición aplicada es:
NOT IN
Cuando @reconciledOnly = 1
Se obtienen movimientos:
- Ya conciliados.
La condición aplicada es:
IN

Componentes considerados en #Reconciliation
La tabla temporal #Reconciliation integra información proveniente de:
-
#BalanceAt- BalanceAtGeneralLedger
- BalanceAtReconciliation
-
#JournalItemReconciled -
#ReconciliationImportReconciled

Cálculo de excedentes
El procedimiento calcula:
- Débitos.
- Créditos.
- Diferencias netas.
Primero suma:
@debit
@credit
Luego calcula el excedente neto utilizando validaciones con IIF.
Este cálculo se realiza para dos grupos:
Grupo 1
Incluye:
- Saldos iniciales.
- Movimientos importados.
Variables:
@debit
@credit
Grupo 2
Incluye:
- Movimientos contables.
Variables:
@debitAdjusting
@creditAdjusting

Normalización contable
La lógica implementada no corresponde a un redondeo ni tolerancia numérica.
Consiste en una normalización contable donde:
- Los excedentes se asignan a débito o crédito.
- Se determina el balance neto final.
Comparación final
El procedimiento compara los excedentes calculados.
Si el resultado es 0
- El saldo conciliado CUADRA.
- El mensaje NO se muestra.
Si el resultado es distinto de 0
- El saldo conciliado NO CUADRA.
- El mensaje SÍ se muestra.
![]()
Referencia funcional
Tarea #525626
La implementación del mensaje:
¡El saldo conciliado no cuadra!
fue realizada tomando como referencia la tarea:
#525626
La definición funcional original indicaba:
"Podrá usar la misma consulta que se hace en el reporte para mostrar el mensaje en pantalla."
Debido a este requerimiento, el procedimiento:
aasi_reconciliation_balance_not_closed
mantiene la misma lógica utilizada en:
aasi_report_reconciliation
para asegurar consistencia entre:
- El reporte de conciliación.
- La validación mostrada en pantalla.